package com.hngy.xpq.sjxuiautomator;

import android.util.Log;
import android.widget.TextView;

public class sjx {

    /**
     * String[] -> int[]
     * @param a
     * @return
     */
    public static float[] strings_int(String[] a){
        float[] b = new float[4];
        for (int i = 0;i < a.length;i++) {
            try {
                b[i] = Float.valueOf(a[i]);
                if (b[i] < 0) {
                    b[3] = -1;
                } else if (b[i] > 10000000) {
                    b[3] = -4;
                }
            } catch (Exception e) {
                b[3] = -2;
            }
        }
        return b;
    }

    /**
     * 结果集
     * @param i
     * @return
     */
    public static boolean result(TextView t, int i) {
        boolean j = true;
        switch (i) {
            case -1:
                t.setText("输入的数值小于等于零!");
                j = !j;
                break;
            case -2:
                t.setText("输入的数值为非数值类型!");
                j = !j;
                break;
            case -3:
                t.setText("空--结束!");
                j = !j;
                break;
            case -4:
                t.setText("超过计算机计算范围");
                j = !j;
                break;
            case 0:
                break;
            case 1001:
                t.setText("当前三角形为【普通三角形】!\n当前三角形为【直角三角形】!");
                break;
            case 1002:
                t.setText("\n当前三角形为【普通三角形】!");
                break;
            case 1003:
                t.setText("当前三角形为【普通三角形】!\n当前三角形为【等腰三角形】!");
                break;
            case 1004:
                t.setText("当前三角形为【普通三角形】!\n当前三角形为【等边三角形】!");
                break;
            case 2001:
                t.setText("当前三角形不存在!");
                j = !j;
                break;
            default:
                break;
        }
        return j;
    }

    /**
     * 多层判断逻辑
     * @param side
     */
    public static void algorithm(TextView t, float[] side) {
        // 判断是否是三角形:两边平方之和是否大于第三边平方     为了防止庞大的数据进行反复比对出现占用时长的问题
        float a = side[0] * side[0] + side[1] * side[1] - side[2] * side[2];
        if(a > 0) {  // 是其他三角形
            // 深度判断  等腰三角形 or 等边三角形
            int index = 1002;
            if(side[0] == side[1]) {
                index++;
                if(side[0] == side[2]) {
                    index++;
                }
            } else {
                if(side[1] == side[2]) {
                    index++;
                }
                if(side[0] == side[2]) {
                    index++;
                }
            }
            result(t, index);
        } else if(a == 0) {  // 直接输出直角三角形
            result(t, 1001);
        } else {
            result(t, 2001);
        }
    }

}
